MySQL 效能優化技術分享
MySQL的limit工作原理就是先讀取N筆記錄,然後拋棄前N筆,讀M筆想要的
所以N越大,性能會越差
優化前SQL:
SELECT *
FROM member
ORDER BY last_active
LIMIT 50,5
優化後SQL:
SELECT *
FROM member
INNER JOIN
(
SELECT member_id
FROM member
ORDER BY last_active
LIMIT 50, 5
)
USING (member_id)
分別在於,優化前的SQL需要更多I/O浪費
因為先預索引,再讀數據,然後拋棄無需的資料。
而優化後的SQL(子查詢)只讀索引(Cover Index)就可以了
然後,然後利用member_id讀取需要的資料即可。